//引入
import axios from 'axios';
//引入进度条
import nprogress from 'nprogress';
//引入样式
import "nprogress/nprogress.css";
//利用axios对象有一个方法create方法,可以创建axios实例
let requests  = axios.create({
     //设置一些配置项
     //基础路径:在发请求的时候，可以把baseURL右侧属性值，在请求地址中出现
     baseURL:'/mock',
     //超时的设置,请求超时的设置
     timeout:5000
});

//请求拦截器:只要项目中发请求之前,请求拦截器，就可以拦截到，可以做一些事情！！！
requests.interceptors.request.use((config)=>{
    //请求头：给服务器携带参数
    //进度条开始加载
    nprogress.start();
    //返回配置对象
    return config;
});

//响应拦截器
requests.interceptors.response.use((res)=>{
     //简化服务器返回数据格式
     //成功
     //进度条结束
     nprogress.done();
     return res.data;
},(error)=>{
     alert('请求失败')
    //失败:终止Promise链，当然你书写new Promise返回pending也可以
    return Promise.reject(error);
});


//对外暴露
export default requests;